/**
***********************************************************************
*
* Copyright 2011 Stefan Wöhle
*
* This file is part of PixelMath
*
* PixelMath is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* PixelMath is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PixelMath. If not, see <http://www.gnu.org/licenses/>.
*
***********************************************************************
*/

#ifndef FORMULAWIDGET_H
#define FORMULAWIDGET_H

#include <QWidget>
#include <QLayout>
#include <QMenu>
#include <QContextMenuEvent>
#include "formula.h"

/*********************************************************
 *
 *  FormulaWidget
 *
 *  This class is the baseclass for widgets to represent
 *  the formula elements. These widgets consists of at least
 *  one formula element and a horizontal layout holding the
 *  user interface for different the formulas.
 *
 **********************************************************/

class FormulaWidget : public QWidget
{
    Q_OBJECT
protected:
    QHBoxLayout centralLayout;
    Formula *formula;
    QMenu   contextMenu;
    void contextMenuEvent(QContextMenuEvent *e) {
        contextMenu.exec(e->globalPos());
    }

public:
    explicit FormulaWidget(QWidget *parent = 0) :
        QWidget(parent),
        contextMenu(this)
    {
        centralLayout.setContentsMargins(0, 0, 0, 0);
        this->setLayout(&centralLayout);

        QAction *action;
        action = contextMenu.addAction(tr("Delete"));
        connect(action, SIGNAL(triggered()),
                this, SLOT(deleteLater()));
    }

    Formula& formulaElement()
    {
        return *formula;
    }
};

#endif // FORMULAWIDGET_H
